import koa from "koa"
import Router from "koa-router"
import cors from "@koa/cors"
import bodyParser from "koa-bodyparser"
import { DataTypes, Sequelize,Op } from "sequelize"


let app=new koa()

let appPort=3000

let router=new Router()


app.use(cors())

app.use(bodyParser())

//-------------------实例化orm工具开始
let sequelize=new Sequelize("model","root","123456",{
    dialect:"mysql",
    host:"localhost"

})
//-------------------实例化orm工具结束

//----------------------定义模型开始

let Book=sequelize.define('books',{
    bookName:DataTypes.STRING,
    author:DataTypes.STRING,
    about:DataTypes.STRING
})
//----------------------定义模型结束

//----------------------同步数据库数据开始

// await sequelize.sync()
// Book.bulkCreate([
//     {
//         bookName:"凡人修仙传",
//         author:"忘语",
//         about:"韩立从凡人成为道祖的故事"
//     },
//     {
//         bookName:"剑来",
//         author:"烽火戏诸侯",
//         about:"一个普通山村小子，偶然下进入到当地江湖小门派，成了一名记名弟子。他以这样身份，如何在门派中立足,如何以平庸的资质进入到修仙者的行列，从而笑傲三界之中！"
//     },
//     {
//         bookName:"一人之下",
//         author:"米二",
//         about:"随着父亲失踪，神秘少女冯宝宝的造访，少年张楚岚的平静校园生活被彻底颠覆。急于解开爷爷和自身秘密的张楚岚和没有任何记忆“不死少女”冯宝宝开启了“异人”之旅……"
//     }
// ])

//----------------------同步数据库数据结束


//-----------------------路由开始
router.get("/books",async(ctx,next)=>{
     let keyword = ctx.request.query.keyword || ''
    console.log(keyword);
    
    let result;
    if (keyword) {
        result = await Book.findAll({
            where: {
                [Op.or]: {
                    bookName: {
                        [Op.like]: `%${keyword}%`
                    },
                    author: {
                        [Op.like]: `%${keyword}%`
                    },
                }
            }
        });
    } else {
        result = await Book.findAll();
    }

    ctx.body = {
        code: 1000,
        data: result,
        msg: '查询成功'
    }
})
router.get("/books/:id",async(ctx,next)=>{
    let id=ctx.params.id || 0
    let res=await Book.findByPk(id)
    ctx.body={
        code:1000,
        data:res,
        msg:"查询指定内容"
    }
})
router.post("/books",async(ctx,next)=>{
    let obj=ctx.request.body;
    let res=Book.create(obj)
    ctx.body={
        code:1000,
        data:res.data,
        mas:"新增内容成功"
    }
})
router.put("/books/:id",async(ctx,next)=>{
    let id=ctx.params.id || 0
    let obj=ctx.request.body
    let res=await Book.update(obj,{
        where:{
            id
        }
    })
    ctx.body={
        code:1000,
        data:res,
        msg:"修改成功"
    }
})
router.delete("/books/:id",async(ctx,next)=>{
    let id=ctx.params.id || 0
    let res=await Book.destroy({
        where:{
            id
        }

    })
    ctx.body={
        code:1000,
        data:res,
        msg:"删除成功"
    }
})
//-----------------------路由结束

//调用路由
app.use(router.routes())

app.listen(appPort)
console.log(`http://localhost${appPort}`);

